home *** CD-ROM | disk | FTP | other *** search
/ Aminet 52 / Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso / Aminet / util / moni / Sysmon120a.lha / sysmon / s / Shutdown next >
AmigaDOS Script File  |  2001-06-23  |  2KB  |  98 lines

  1. .KEY countdown,reboot/s,rekick/s,noconf/s,quick/s
  2. ; $VER: Shutdown 1.3 (23.6.2001) © 1995-2001 by Etienne Vogt
  3. ; Sysmon system shutdown script
  4.  
  5. FailAt 100
  6. Echo "*N*E[37m SHUTDOWN *E[0m - Halt the system safely*N"
  7. If <noconf> NOT EQ "noconf"
  8.   Ask "*E[33mAre you sure you want to do this ?*E[0m"
  9.   If WARN 
  10.     Skip OK
  11.   Else
  12.     Quit 20
  13.   EndIf
  14. EndIf
  15.  
  16. Lab OK
  17. ChangeTaskPri 2                    ; Bump priority
  18. If <quick> EQ "quick"
  19.   Set timeout 10
  20.   Set quiet QUIET
  21. Else
  22.   Set timeout 50
  23.   Set quiet ""
  24. EndIf
  25. Set count <countdown$0>
  26. If $count GT 10 VAL
  27.   Set count 10
  28. EndIf
  29. Broadcast "$hostname will shutdown in $count minute(s)*N" SHUTDOWN COUNTDOWN=`Eval $count * 60` TIMEOUT=$timeout
  30. If $count NOT GT 0 VAL
  31.   Skip Now
  32. EndIf
  33.  
  34. Lab Loop
  35. If $count GT 5 VAL
  36.   Set next 5
  37.   Skip Waiting
  38. EndIf
  39. If $count GT 3 VAL
  40.   Set next 3
  41. Else
  42.   Set next `Eval $count - 1`
  43. EndIf
  44. Lab Waiting
  45. Wait `Eval $count - $next` min
  46. If WARN
  47.   Broadcast "$hostname shutdown has been cancelled*N" SHUTDOWN CANCEL
  48.   UnSet count
  49.   UnSet next
  50.   UnSet timeout
  51.   UnSet quiet
  52.   Quit 10
  53. Else
  54.   Broadcast "$hostname will shutdown in $next minute(s)*N" SHUTDOWN COUNTDOWN=`Eval $next * 60` TIMEOUT=$timeout
  55. EndIf
  56. Set count $next
  57. If $count GT 0 VAL
  58.   Skip BACK Loop
  59. EndIf
  60.  
  61. Lab Now
  62. UnSet count
  63. UnSet next
  64. SysLog "Shutdown : $hostname shutdown requested by operator" LEVEL=4
  65.  
  66. If <quick> NOT EQ "quick"
  67.   If EXISTS S:User-Shutdown
  68.     Echo "*NExecuting User-Shutdown script..."
  69.     Execute S:User-Shutdown
  70.   EndIf
  71.   Wait 2 sec
  72. EndIf
  73.  
  74. Echo "*NDismounting disk volumes..."
  75. Copy >NIL: C:Wait C:UnMount C:Execute C:Halt C:Broadcast RAM:    ; Copy needed commands
  76. CD RAM:
  77. Assign C: RAM:
  78. Path RAM: RESET
  79. Broadcast >NIL: "Dismounting disk volumes*N" UNMOUNT TIMEOUT=$timeout
  80. UnMount ALL INHIBIT $quiet
  81.  
  82. If <quick> NOT EQ "quick"
  83.   If EXISTS Final-Shutdown
  84.     Echo "*NExecuting Final-Shutdown script..."
  85.     Execute Final-Shutdown
  86.   EndIf
  87.   Wait 2 sec
  88. EndIf
  89.  
  90. Echo "*NSystem going down..."
  91. Broadcast >NIL: "System going down*N" HALT TIMEOUT=$timeout
  92. Halt <reboot> <rekick>
  93.  
  94. Echo "*NSystem Shutdown failed."
  95. UnSet timeout
  96. UnSet quiet
  97. Quit 100
  98.